DATE: July 15th, 1997 SUBJECT: Quake's texture files OFFSET SIZE/TYPE COMMENTS --------------------------------------------------------------------------- 0000h 12 bytes, char[12] Name of texture 000Ch 4 bytes, char[4] "???K" 0010h 4 bytes, DWORD width 0014h 4 bytes, DWORD height 0018h 4 bytes, DWORD offset of mipscale 0 image 001Ch 4 bytes, DWORD offset of mipscale 1 image 0020h 4 bytes, DWORD offset of mipscale 2 image 0024h 4 bytes, DWORD offset of mipscale 3 image 0028h char[width*height] Image (mipscale 0) ? char[(width/2)*(height/2)] Image (mipscale 1) ? char[(width/4)*(height/4)] Image (mipscale 2) ? char[(width/8)*(height/8)] Image (mipscale 3) This way of storing the textures has to do with Quake's way of rendering realistic 3D while not having to overburden the processer with every single small pixel. The scale that determines which of these gets drawn can be changed thru Quake's console variable: d_mipscale. Usually set to 1, 0 means no mipscaling, while the higher the value the blockier the walls become.